<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<link rel="shortcut icon" type="image/png" href="styles/UMotionFavicon.png" />
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>UMotion Manual - UMotion API</title>
		<link rel="stylesheet" type="text/css" href="styles/theme_styles.css" media="screen">
		<link rel="stylesheet" type="text/css" href="styles/treeview_styles.css" media="screen">
		<link rel="stylesheet" type="text/css" href="styles/element_styles.css" media="screen">
	</head>
	<body>
		<div class="header">
			<div class="headerLogo">
				<img src="styles/UMotionLogoHeader.png"></img>
			</div>
			<div class="headerBlueRight">
				<a href="https://www.soxware.com" class="headerLink">soxware.com</a>
			</div>
		</div>
		<div class="versionHeader">
			<p class="versionText">Version: <b>1.26</b> </p>
		</div>
		<div class="leftContent">
			<div class="leftContentInner">
				<div class="leftContentHeadline">
					UMotion Manual
				</div>
				<!-- Tree View -->
				<ol class="tree">
					
<li class="file"><a href="UMotionManual.html">UMotion Manual</a></li>

<li class="file"><a href="Introduction.html">Introduction & Tips</a></li>

<li class="file"><a href="GettingStarted.html">Getting Started</a></li>

<li>
	<label for="VideoTutorials"><a href="VideoTutorials.html" class="treeFolderLink">Video Tutorials</a></label> <input type="checkbox"  id="VideoTutorials" /> 
	<ol>
<li>
	<label for="GeneralTutorials"><a href="GeneralTutorials.html" class="treeFolderLink">General</a></label> <input type="checkbox"  id="GeneralTutorials" /> 
	<ol>
<li class="file"><a href="QuickStart.html">Quick Start Tutorial</a></li>

<li class="file"><a href="Lesson1.html">1) Installation & First Steps</a></li>

<li class="file"><a href="Lesson2.html">2) Pose Editing</a></li>

<li class="file"><a href="Lesson3.html">3) Clip Editor</a></li>

<li class="file"><a href="Lesson4.html">4) Curves & Rotation Modes</a></li>

<li class="file"><a href="Lesson5.html">5) Config Mode</a></li>

<li class="file"><a href="Lesson6.html">6) Export Animations</a></li>

<li class="file"><a href="Lesson7.html">7) Root Motion</a></li>

<li class="file"><a href="Lesson8.html">8) Animation Events</a></li>

<li class="file"><a href="Lesson9.html">9) Pose Mirroring</a></li>
</ol>
</li>

<li>
	<label for="ProfessionalExclusive"><a href="ProfessionalExclusive.html" class="treeFolderLink">UMotion Pro</a></label> <input type="checkbox"  id="ProfessionalExclusive" /> 
	<ol>
<li class="file"><a href="ProLesson1.html">1) Importing Animations</a></li>

<li class="file"><a href="ProLesson2.html">2) Inverse Kinematics</a></li>

<li class="file"><a href="ProLesson3.html">3) Child-Of Constraint</a></li>

<li class="file"><a href="ProLesson4.html">4) Custom Properties</a></li>

<li class="file"><a href="ProLesson5.html">5) IK Pinning</a></li>
</ol>
</li>

<li>
	<label for="InPractice"><a href="InPractice.html" class="treeFolderLink">In Practice</a></label> <input type="checkbox"  id="InPractice" /> 
	<ol>
<li class="file"><a href="InPractice1.html">1) Our First Animation</a></li>

<li class="file"><a href="InPractice2.html">2) Editing Animations</a></li>

<li class="file"><a href="InPractice3.html">3) Customizing an animation for a RPG</a></li>

<li class="file"><a href="InPractice4.html">4) Unity Timeline & Weighted Tangents</a></li>
</ol>
</li>

<li>
	<label for="Jayanam"><a href="Jayanam.html" class="treeFolderLink">Jayanam</a></label> <input type="checkbox"  id="Jayanam" /> 
	<ol>
<li class="file"><a href="Jayanam1.html">UMotion Tutorial</a></li>
</ol>
</li>
</ol>
</li>

<li class="file"><a href="HowToCreateBetterAnimations.html">How to create better animations</a></li>

<li>
	<label for="ClipEditor"><a href="ClipEditor.html" class="treeFolderLink">Clip Editor</a></label> <input type="checkbox"  id="ClipEditor" /> 
	<ol>
<li>
	<label for="MenuBar"><a href="MenuBar.html" class="treeFolderLink">Menu Bar</a></label> <input type="checkbox"  id="MenuBar" /> 
	<ol>
<li class="file"><a href="MenuBarFile.html">File</a></li>

<li class="file"><a href="MenuBarEdit.html">Edit</a></li>

<li class="file"><a href="MenuBarHelp.html">Help</a></li>
</ol>
</li>

<li class="file"><a href="Preferences.html">Preferences</a></li>

<li class="file"><a href="ImportExport.html">Import / Export</a></li>

<li class="file"><a href="FKtoIKConversion.html">FK to IK Conversion</a></li>

<li>
	<label for="MainNavigation"><a href="MainNavigation.html" class="treeFolderLink">Main Navigation</a></label> <input type="checkbox"  id="MainNavigation" /> 
	<ol>
<li class="file"><a href="ProjectSettings.html">Project Settings</a></li>

<li class="file"><a href="ClipSettings.html">Clip Settings</a></li>
</ol>
</li>

<li class="file"><a href="AnimatedPropertiesList.html">Animated Properties List</a></li>

<li class="file"><a href="RootMotion.html">Root Motion</a></li>

<li class="file"><a href="RotationModes.html">Rotation Modes</a></li>

<li>
	<label for="DopesheetCurves"><a href="DopesheetCurves.html" class="treeFolderLink">Dopesheet / Curves View</a></label> <input type="checkbox"  id="DopesheetCurves" /> 
	<ol>
<li class="file"><a href="Dopesheet.html">Dopesheet</a></li>

<li class="file"><a href="Curves.html">Curves View</a></li>
</ol>
</li>

<li class="file"><a href="Playback.html">Playback Navigation</a></li>

<li class="file"><a href="Layers.html">Layers</a></li>
</ol>
</li>

<li>
	<label for="PoseEditor"><a href="PoseEditor.html" class="treeFolderLink">Pose Editor</a></label> <input type="checkbox"  id="PoseEditor" /> 
	<ol>
<li>
	<label for="ConfigMode"><a href="ConfigMode.html" class="treeFolderLink">Config Mode</a></label> <input type="checkbox"  id="ConfigMode" /> 
	<ol>
<li>
	<label for="RigHierarchy"><a href="RigHierarchy.html" class="treeFolderLink">Rig Hierarchy</a></label> <input type="checkbox"  id="RigHierarchy" /> 
	<ol>
<li class="file"><a href="IKSetupWizard.html">IK Setup Wizard</a></li>

<li class="file"><a href="MirrorMapping.html">Mirror Mapping</a></li>
</ol>
</li>

<li class="file"><a href="Configuration.html">Configuration</a></li>

<li class="file"><a href="ConfigDisplay.html">Display</a></li>
</ol>
</li>

<li>
	<label for="PoseMode"><a href="PoseMode.html" class="treeFolderLink">Pose Mode</a></label> <input type="checkbox"  id="PoseMode" /> 
	<ol>
<li class="file"><a href="Tools.html">Tools</a></li>

<li class="file"><a href="Channels.html">Channels</a></li>

<li class="file"><a href="Selection.html">Selection</a></li>

<li class="file"><a href="PoseDisplay.html">Display</a></li>

<li class="file"><a href="Animation.html">Animation</a></li>
</ol>
</li>

<li>
	<label for="Constraints"><a href="Constraints.html" class="treeFolderLink">Constraint System</a></label> <input type="checkbox"  id="Constraints" /> 
	<ol>
<li class="file"><a href="InverseKinematics.html">Inverse Kinematics</a></li>

<li class="file"><a href="ChildOf.html">Child-Of</a></li>

<li class="file"><a href="CustomProperty.html">Custom Property</a></li>
</ol>
</li>

<li class="file"><a href="Options.html">Options</a></li>

<li class="file"><a href="ToolAssistant.html">Tool Assistant</a></li>
</ol>
</li>

<li class="file"><a href="EditInPlayMode.html">Edit In Play Mode</a></li>

<li class="file"><a href="UnityTimelineIntegration.html">Unity Timeline Integration</a></li>

<li class="file"><a href="UMotionAPI.html"><b><u>UMotion API</u></b></a></li>

<li class="file"><a href="ExportingAnimationsFAQ.html">Exporting Animations FAQ</a></li>

<li class="file"><a href="Support.html">Support / FAQ</a></li>

<li class="file"><a href="ReleaseNotes.html">Release Notes</a></li>

<li class="file"><a href="KnownIssues.html">Known Issues</a></li>

<li class="file"><a href="Credits.html">Credits</a></li>

				</ol>
			</div>
		</div>
		<div class="mainContent">
			<div class="mainContentInner">
				<h1 class="headline1" id="">UMotion API</h1><p class="textBlock">The UMotion API is a simple and easy-to-use API that provides a basic interface for custom scripts to interact with UMotion. The API provides classes and methods that support the following features:</p><ul class="listMain">
    <li class="listItem"><span class="listText">Opening the UMotion windows</span></li>
    <li class="listItem"><span class="listText">Opening/closing UMotion projects</span></li>
    <li class="listItem"><span class="listText">Switching between animation clips</span></li>
    <li class="listItem"><span class="listText">Assigning or removing a GameObject to/from the Pose Editor</span></li>
</ul><p class="textBlock">In order to implement custom constraints or 3rd party IK solutions, please take a look at the <a href="Options.html#ExtendingUMotion" class="link">UMotion Callback System</a> instead.</p><h2 class="headline2" id="">Preparation</h2><p class="textBlock">To access the UMotion API in one of your scripts, make sure that they are placed inside an "Editor" folder. Add the following using statement to get access to the UMotion namespace: <b>using UMotionEditor.API;</b>
</br></br>
There are two classes within this namespace:</p><ul class="listMain">
    <li class="listItem"><span class="listText">ClipEditor</span></li>
    <li class="listItem"><span class="listText">PoseEditor</span></li>
</ul><h2 class="headline2" id="">ClipEditor Overview</h2><h3 class="headline3" id="">Properties</h3><ul class="listMain">
    <li class="listItem"><span class="listText">
        <b>static bool IsWindowOpened</b>
        </br>True when the Clip Editor window is opened and initialized. It might be necessary to focus either the Clip Editor or the Pose Editor window in order to initialize UMotion.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static bool IsProjectLoaded</b>
        </br>True when the Clip Editor window has a UMotion project loaded.
    </span></li>
</ul><h3 class="headline3" id="">Methods</h3><ul class="listMain">
    <li class="listItem"><span class="listText">
        <b>static void OpenWindow()</b>
        </br>Opens the UMotion Clip Editor window. If the window is already opened but hidden by another window, it is brought to the front. It takes at least one frame (or more) until the window is initialized.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void LoadProject(string path)</b>
        </br>Loads a UMotion project. The Clip Editor needs to be open in order for this method to succeed. This method can also be used to switch from one loaded project to another. The path must be relative to the Unity project directory (e.g. "Assets/umotion_project.asset").
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void CloseProject()</b>
        </br>Closes a loaded UMotion project.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static string GetLoadedProjectPath()</b>
        </br>Get the path to the currently loaded UMotion project. The path is relative to the Unity project directory. Returns null if no project is currently loaded.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static string[] GetAllClipNames()</b>
        </br>Returns the names of all animation clips in the currently loaded UMotion project. A UMotion project must be loaded.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static string GetSelectedClipName()</b>
        </br>Returns the name of the currently selected animation clip in the Clip Editor.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void SelectClip(string name)</b>
        </br>Selects (opens) the clip in the clip editor. The clip must already exist in the current UMotion project.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void SetClipName(string oldName, string newName)</b>
        </br>Changes the name of an animation clip. When called right before "ExportCurrentClip()" this method can be used to change the name of the exported animation clip. This is useful when exporting the same animation clip several times (with different animation layers enabled).
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void ExportCurrentClip()</b>
        </br>Exports the clip currently opened in the Clip Editor. This method blocks until the export is finished.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void ExportAllClips()</b>
        </br>Exports all clips of the current loaded UMotion project. This method blocks until the export is finished.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static string[] GetClipLayerNames()</b>
        </br>Returns an array that holds the names of all animation layers of the currently opened animation clip. The base layer is not included.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void SetClipLayerName(string oldName, string newName)</b>
        </br>Changes the name of an animaton layer of the currently opened animation clip.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void GetClipLayerBlendProperties(string layerName, out bool mute, out float blendWeight)</b>
        </br>Gets the blend properties (mute and blend weight 0-1) of the layer with the given name.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void SetClipLayerBlendProperties(string layerName, bool mute, float blendWeight)</b>
        </br>Sets the blend properties (mute and blend weight 0-1) of the layer with the given layer name. This method is useful for exporting an animation clip several times with different layers muted/unmuted.
    </span></li>
</ul><h2 class="headline2" id="">PoseEditor Overview</h2><h3 class="headline3" id="">Properties</h3><ul class="listMain">
    <li class="listItem"><span class="listText">
        <b>static bool IsWindowOpened</b>
        </br>True when the Pose Editor window is opened and initialized. It might be necessary to focus either the Pose Editor or the Clip Editor window in order to initialize UMotion.
    </span></li>
</ul><h3 class="headline3" id="">Methods</h3><ul class="listMain">
    <li class="listItem"><span class="listText">
        <b>static void OpenWindow()</b>
        </br>Opens the UMotion Pose Editor window. If the window is already opened but hidden by another window, it is brought to the front. It takes at least one frame (or more) until the window is initialized.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void SetAnimatedGameObject(GameObject gameObject)</b>
        </br>Applies a GameObject (from the current Unity scene) to the Pose Editor. A UMotion project already needs to be loaded.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>static void ClearAnimatedGameObject(PoseEditor.ClearMode clearMode = PoseEditor.ClearMode.RevertChanges)</b>
        </br>Removes a GameObject from the Pose Editor. By default, the GameObject is reverted to the pose that it had before it has been assigned to UMotion.
    </span></li>
</ul><h3 class="headline3" id="">enum PoseEditor.ClearMode</h3><ul class="listMain">
    <li class="listItem"><span class="listText">
        <b>RevertChanges</b>
        </br>Restores the original pose of the GameObject before it was assigned to the UMotion Pose Editor.
    </span></li>
    <li class="listItem"><span class="listText">
        <b>KeepChanges</b>
        </br>Keeps the current pose of the GameObject.
    </span></li>
</ul>
				<div class="mainContentFooter">
					<p class="textBlock" style="float:left">Copyright © 2017 - 2021 Soxware Interactive ALL RIGHTS RESERVED</p>
					<p class="textBlock" align="right"><a href="https://forum.unity.com/threads/new-umotion-animation-editor-released.490618/" class="link">Unity Forum Thread</a> | <a href="https://www.facebook.com/Soxware/" class="link">Facebook</a> | <a href="https://twitter.com/SoxwareInteract" class="link">Twitter</a> | <a href="https://www.youtube.com/channel/UCCuE6nI5gHvUQjx0lo6Twtg" class="link">Youtube</a></p>
				</div>
			</div>
		</div>
	</body>
</html>
